/**JOSN内置API parse方法
 * 
 * @param {String} javaData  （即JOSN数据格式）
 * @returns Object
 */

function parse(javaData){                           //let javaData = '{"errcode":0,"errmsg":"ok", "status":true}'
    let str=javaData.replace(/'|{|}|\s/g,'')   //正则返回数组替换后返回了字符串去掉【" { } 空格】   => 'errcode:0,errmsg:ok'
    let arr=str.split(',')                          //再用切割返回数组
    let obj={}                                      //定义空对象，通过遍历获得数组数据-->分割数据为数组(由[键，数据]组成)-->获取数组数据定义obj的键和值-->再返回 被定义了键和值得obj
    arr.forEach(item=>{
        let temp=item.split(':')
        obj[temp[0]]=isNaN(Number(temp[1])) ? temp[1]:Number(temp[1]); //定义obj键：值  obj.temp[0]=temp[1]
    })
    return obj;                                     //返回更新后的对象
}



/**JOSN 内置API stingify方法
 * 
 * @param {Object} obj  (即标准普通对象)
 * @returns String
 */

function stringify(obj){    
    let arr=[]                       // let obj = {"errcode":0,"errmsg":"ok", "status":true}
    for(let key in obj){
       let val=obj[key]
       if(!['boolean','number'].includes(typeof val))  val=`'${obj[key]}'` 
        //如果不是number和boolean，那就将字符串再加‘’，数据还原为JOSN格式
       arr.push(`'${key}':${val}`)   //放到数组
    }
    return `{${arr.join(',')}}`      //--jion(',')拼接字符串--再拼接{}和 反引号，即恢复JOSN数据格式
}

